今天來講講兩個之後會用到的兩個小觀念: The Global Object &Function Expressions
#The Global Object
當我們寫 JavaScript 的時候,The Global Object (下面稱全域物件) = window ,我們可以從這個 window 物件裡取用屬性和方法,像是alert()
、scroll()
或setTimeout()
等等。
而在 node.js 中,因為我們不在瀏覽器的關係,全域物件不再是 window
而是 global
。這個 global
跟 window
一樣,也有許多的屬性和方法讓我們取用。
#Function Expressions
首先,我們從 Statement
(陳述式) 與 Expression
(表達式)開始說起。
簡單來說,兩個的差別在於:Statement
:不會產生值,像是變數宣告、流程控制等等
Expression
:會產生一個值,像是邏輯(true or false)、賦值(let a = 100)等等
這篇很讚,講的超詳細!
而對 function 而言,所謂的 Function Statement 會長這樣:
function sayHi(){
console.log('hi')
}
這個sayHi function 並不會產生任何的值,因此他是一個 Statement。
而 Function Expressions 則會這樣寫:
let sayBye = function(){
console.log('bye')
}
從上面的程式碼我們可以看到,我們很明顯的賦值給一個變數 sayBye 了,我們透過 sayBye()
去invoke。
Function Expressions 在 node.js 中十分的常見,但其實也不太難不要被嚇到了,我們就想像它就是指後面那團東西就好惹!
另外一個常見於 node.js 中的是 將一個 function 當作參數傳入另一個 function 中,像下面這樣:
function callFuction(func){
func()
}
let sayBye = function(){
console.log('bye')
}
callFuction(sayBye)
今天的學習就到這邊,我們明天見囉!